[Xend] Do network startup earlier.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 27 Jul 2007 08:04:35 +0000 (09:04 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Fri, 27 Jul 2007 08:04:35 +0000 (09:04 +0100)
Xend tries to rebuild the network configuration such as bridges and
vlan interfaces  (in those bridges) when starting. Unfortunately this
fails on the first startup since the network script has not run, yet,
and for example created peth0. When restarting xend it works due to
the peth0 being there then. This patch moves the initialization of the
network to an earlier time in the xend initialization process to
mitigate this problem.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
tools/python/xen/xend/XendPIF.py
tools/python/xen/xend/server/SrvServer.py

index d29f9a363fbd82b2e0a9e108fc2f560ae853a485..d2107307653c45e652f00be63e88e3042a9545ed 100644 (file)
@@ -24,6 +24,7 @@ from xen.xend import XendAPIStore
 from xen.xend.XendBase import XendBase
 from xen.xend.XendPIFMetrics import XendPIFMetrics
 from xen.xend.XendError import *
+from xen.xend import Vifctl
 
 log = logging.getLogger("xend.XendPIF")
 log.setLevel(logging.TRACE)
@@ -31,6 +32,9 @@ log.setLevel(logging.TRACE)
 MAC_RE = re.compile(':'.join(['[0-9a-f]{2}'] * 6))
 IP_IFACE_RE = re.compile(r'^\d+: (\w+):.*mtu (\d+) .* link/\w+ ([0-9a-f:]+)')
 
+
+Vifctl.network('start')
+
 def linux_phy_to_virt(pif_name):
     return 'eth' + re.sub(r'^[a-z]+', '', pif_name)
 
index 10a09a4c56bdb59710d367385a208b48436a7175..95be674da82912afa5bacc80f214c98216c84f13 100644 (file)
@@ -49,7 +49,6 @@ from threading import Thread
 from xen.web.httpserver import HttpServer, UnixHttpServer
 
 from xen.xend import XendNode, XendOptions, XendAPI
-from xen.xend import Vifctl
 from xen.xend.XendLogging import log
 from xen.xend.XendClient import XEN_API_SOCKET
 from xen.xend.XendDomain import instance as xenddomain
@@ -101,8 +100,6 @@ class XendServers:
         if status:
             fcntl.fcntl(status, fcntl.F_SETFD, fcntl.FD_CLOEXEC)
         
-        Vifctl.network('start')
-
         # Prepare to catch SIGTERM (received when 'xend stop' is executed)
         # and call each server's cleanup if possible
         signal.signal(signal.SIGTERM, self.cleanup)